home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / etc / pcmcia / serial < prev    next >
Text File  |  2005-10-18  |  3KB  |  110 lines

  1. #!/bin/sh
  2. #
  3. # serial 1.43 2004/07/01 17:26:26 (David Hinds)
  4. #
  5. # Initialize or shutdown a PCMCIA serial device
  6. #
  7. # The first argument should be either 'start' or 'stop'.  The second
  8. # argument is the base name for the device.
  9. #
  10. # The script passes an extended device address to 'serial.opts' in the 
  11. # ADDRESS variable, to retrieve device-specific configuration options.
  12. # The address format is "scheme,socket,instance" where "scheme" is the
  13. # PCMCIA configuration scheme, "socket" is the socket number, and
  14. # "instance" is used to number multiple ports on a single card.  
  15. #
  16.  
  17. if [ -r ./shared ] ; then . ./shared ; else . /etc/pcmcia/shared ; fi
  18.  
  19. # Get device attributes
  20. get_info $DEVICE
  21.  
  22. # Load site-specific settings
  23. ADDRESS="$SCHEME,$SOCKET,$INSTANCE"
  24. start_fn () { return; }
  25. stop_fn () { return; }
  26. . $0.opts
  27.  
  28. # Newer kernels deprecate use of "cua" devices, but we need to
  29. # keep track of them anyway, if the device files are present
  30. NR=`expr $MINOR - 64`
  31. if [ -c /dev/cua1 ] ; then
  32.     CALLOUT=cua$NR
  33. else
  34.     CALLOUT=$DEVICE
  35. fi
  36.  
  37. case "$ACTION" in
  38.  
  39. 'start')
  40.     [ -n "$VERBOSE" -a -n "$INFO" ] && echo "$INFO"
  41.     if [ ! -c /dev/$DEVICE ] ; then
  42.     cd /dev ; log ./MAKEDEV $DEVICE
  43.     fi
  44.     if [ -n "$LINK" ] ; then
  45.     if [ -L $LINK ] ; then rm $LINK ; fi
  46.     if match `uname -r` "2.[2-9].*" ; then
  47.         ln -s /dev/$DEVICE $LINK
  48.     else
  49.         ln -s /dev/$CALLOUT $LINK
  50.     fi
  51.     fi
  52.     if [ -x /bin/setserial ] ; then
  53.     # Workaround for serial driver bug
  54.     IRQ=`setserial /dev/$DEVICE | sed -e 's/.*IRQ: //'`
  55.     setserial /dev/$DEVICE irq 0 ; setserial /dev/$DEVICE irq $IRQ
  56.     if [ -n "$SERIAL_OPTS" ] ; then
  57.         log setserial /dev/$DEVICE $SERIAL_OPTS
  58.     fi
  59.     fi
  60.     if [ -n "$INITTAB" ] ; then
  61.     echo "S$NR:12345:respawn:$INITTAB $DEVICE" >> /etc/inittab
  62.     telinit q
  63.     fi
  64.     start_fn $DEVICE
  65.     ;;
  66.  
  67. 'check')
  68.     is_true $NO_CHECK && exit 0
  69.     if [ -n "$INITTAB" ] ; then
  70.     do_fuser -v /dev/$DEVICE /dev/$CALLOUT $LINK | grep -v getty \
  71.         | grep -q /dev/$DEVICE && exit 1
  72.     else
  73.     do_fuser -s /dev/$DEVICE /dev/$CALLOUT $LINK && exit 1
  74.     fi
  75.     ;;
  76.  
  77. 'cksum')
  78.     chk_simple "$NEW_SCHEME,$SOCKET,$INSTANCE" || exit 1
  79.     ;;
  80.     
  81. 'stop')
  82.     if [ -n "$INITTAB" ] ; then
  83.     grep -v $DEVICE /etc/inittab > /etc/inittab.new
  84.     mv /etc/inittab.new /etc/inittab
  85.     telinit q
  86.     fi
  87.     do_fuser -k /dev/$DEVICE /dev/$CALLOUT $LINK > /dev/null
  88.     if [ -L "$LINK" ] ; then rm $LINK ; fi
  89.     stop_fn $DEVICE
  90.     ;;
  91.  
  92. 'suspend')
  93.     do_fuser -k -STOP /dev/$DEVICE /dev/$CALLOUT > /dev/null
  94.     ;;
  95.  
  96. 'resume')
  97.     if [ -n "$SERIAL_OPTS" ] ; then
  98.     setserial /dev/$DEVICE $SERIAL_OPTS
  99.     fi
  100.     do_fuser -k -CONT /dev/$DEVICE /dev/$CALLOUT $LINK > /dev/null
  101.     ;;
  102.  
  103. *)
  104.     usage
  105.     ;;
  106.  
  107. esac
  108.  
  109. exit 0
  110.